package com.carrental.api.cms.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.carrental.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 *
 * </p>
 *
 * @author 梁毅
 * @since 2022-03-02 23:26:10
 */
@Getter
@Setter
@TableName("cms_car")
@ApiModel(value = "CmsCar对象", description = "")
public class CmsCar  extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty("车辆id")
    private Long carId;

    @ApiModelProperty("所属门店id")
    private Long storeId;

    @ApiModelProperty("车辆名称")
    private String carName;

    @ApiModelProperty("车辆品牌（现代、本田）")
    private String carBrand;

    @ApiModelProperty("车辆型号（索纳塔、雅阁）")
    private String carModel;

    @ApiModelProperty("车辆能源类型（油、电）")
    private String carEnergyType;

    @ApiModelProperty("车辆排量（1.5T、2.4L）")
    private String carDisplacement;

    @ApiModelProperty("车牌号")
    private String carPlateNumber;

    @ApiModelProperty("车架号")
    private String carVin;

    @ApiModelProperty("变速箱类型（手动、自动）")
    private String carGearboxType;

    @ApiModelProperty("车辆级别（紧凑型、中大型）")
    private String carSizeLevel;

    @ApiModelProperty("车身结构（三箱、SUV、MPV）")
    private String carBodyStructure;

    @ApiModelProperty("车辆座位数")
    private Integer carSeatNumber;

    @ApiModelProperty("油箱容积")
    private Integer carTankCapacity;

    @ApiModelProperty("上市时间")
    private LocalDate carMarketTime;

    @ApiModelProperty("出厂时间")
    private LocalDate carManufactureTime;

    @ApiModelProperty("车辆里程")
    private String carMileage;

    @ApiModelProperty("租出状态")
    private Boolean carRentalStatus;

    @ApiModelProperty("租金")
    private BigDecimal rentalPrice;

    @ApiModelProperty("押金")
    private BigDecimal depositPrice;

    @ApiModelProperty("车辆图片")
    private String carImageUrl;

    @TableField(fill = FieldFill.UPDATE)
    @ApiModelProperty("删除人标识[外键]")
    private Long deletedId;

    @TableField(fill = FieldFill.UPDATE)
    @ApiModelProperty("删除时间")
    private LocalDateTime deletedTime;

    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty("是否删除")
    private Boolean isDeleted = false;

    @ApiModelProperty("是否启用")
    private Boolean isEnabled;


}
